<html>
<head><meta charset="utf-8"><title>perf integration · t-compiler/wg-self-profile · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/index.html">t-compiler/wg-self-profile</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html">perf integration</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="176155800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176155800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176155800">(Sep 20 2019 at 00:56)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> So, if I want to store the self-profile results in what needs to be long-term backwards compatible -- should I store the JSON results of <code>summarize summarize --json</code>?</p>



<a name="176155815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176155815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176155815">(Sep 20 2019 at 00:56)</a>:</h4>
<p>or is that a pretty unstable format, and I should load that up and try and parse it down to "what perf wants"</p>



<a name="176155841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176155841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176155841">(Sep 20 2019 at 00:57)</a>:</h4>
<p>or is there some non-summary method of getting events out? Should we be storing the 'raw' event files?</p>



<a name="176155895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176155895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176155895">(Sep 20 2019 at 00:58)</a>:</h4>
<p>I'll probably come back to this tomorrow or so</p>



<a name="176181225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176181225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176181225">(Sep 20 2019 at 10:33)</a>:</h4>
<p>I don't think we should store the raw events files because they're very large. The output of <code>summarize summarize --json</code> should be pretty stable so I think we can store it as is.</p>



<a name="176182223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176182223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176182223">(Sep 20 2019 at 10:53)</a>:</h4>
<p>Okay, sounds good. Should be fairly easy to implement that.</p>



<a name="176241816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176241816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176241816">(Sep 21 2019 at 00:50)</a>:</h4>
<p>Okay, I have an initial draft (no diff, just view) of the self-profile data live. Any recent (currently, I think last two) commits should have self-profile data recorded. If you go to the comparison page and pop open one of the drop downs, any of the links in the second column should work -- e.g. <a href="https://perf.rust-lang.org/detailed-query.html?commit=97e58c0d32bcb8730f8246d25f3d2fa8092b450a&amp;benchmark=inflate-check&amp;run_name=baseline%20incremental" target="_blank" title="https://perf.rust-lang.org/detailed-query.html?commit=97e58c0d32bcb8730f8246d25f3d2fa8092b450a&amp;benchmark=inflate-check&amp;run_name=baseline%20incremental">https://perf.rust-lang.org/detailed-query.html?commit=97e58c0d32bcb8730f8246d25f3d2fa8092b450a&amp;benchmark=inflate-check&amp;run_name=baseline%20incremental</a>. Two problems I noted: we always have 0s in the incremental column and seem to get no reuse (i.e., cache hits are 0). I've not yet investigated if this is perf doing something wrong and not running in incremental mode (unlikely, given lower instruction counts) or self-profile data being incorrectly reported.</p>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> <span class="user-mention" data-user-id="124287">@mw</span> -- I've ticked the boxes in the tracking issue per the above. Tomorrow's agenda is to try and rework how perf stores and publishes data as right now we've ~20x increased each commit's data with the self-profile info, which is unacceptable (we've previously been getting closer to this, but only just now hit this point). I don't anticipate this being a concern for self-profile WG, though, as we can take the hit for now. I'm interested in hearing feedback on the table (it's sortable on every column!) and if we want to spend time implementing a diff view. I'm not sure how a diff view should look, either.</p>



<a name="176241818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176241818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176241818">(Sep 21 2019 at 00:51)</a>:</h4>
<p>(the above will be live in 15 minutes or so once I finish compiling)</p>



<a name="176241895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176241895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176241895">(Sep 21 2019 at 00:53)</a>:</h4>
<p>I suspect the lack of incremental might be a perf collection bug but I'll investigate tomorrow probably</p>



<a name="176262129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176262129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176262129">(Sep 21 2019 at 12:05)</a>:</h4>
<p>Aha, cache hits are not recorded by default</p>



<a name="176262130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176262130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176262130">(Sep 21 2019 at 12:05)</a>:</h4>
<p>I've now passed -Zself-profile-events=all as a (possibly temporary) stopgap</p>



<a name="176264966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176264966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176264966">(Sep 21 2019 at 13:30)</a>:</h4>
<p>Yeah, we found recording cache hits incurs a big performance hit</p>



<a name="176267965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176267965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176267965">(Sep 21 2019 at 14:53)</a>:</h4>
<p>hm, interesting</p>



<a name="176267967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176267967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176267967">(Sep 21 2019 at 14:53)</a>:</h4>
<p>I would not expect that</p>



<a name="176268016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176268016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176268016">(Sep 21 2019 at 14:54)</a>:</h4>
<p>and based on the perf graphs it appears to be at most a few percent -- at least for perf, I think acceptable</p>



<a name="176268769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176268769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176268769">(Sep 21 2019 at 15:17)</a>:</h4>
<p>hm, so it looks like I'm also hitting some ICEs when enabling all events -- e.g. </p>
<div class="codehilite"><pre><span></span>thread &#39;rustc&#39; panicked at &#39;assertion failed: pos.checked_add(num_bytes).unwrap() &lt;= self.mapped_file.len()&#39;, /cargo/registry/src/gi
thub.com-1ecc6299db9ec823/measureme-0.3.0/src/mmap_serialization_sink.rs:38:9
</pre></div>



<a name="176268792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176268792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176268792">(Sep 21 2019 at 15:17)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> is that because we're only allocating 1 GB of output? Seems like we should allocate more to avoid this</p>



<a name="176268831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176268831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176268831">(Sep 21 2019 at 15:18)</a>:</h4>
<p>or come up with some sort of resizing / splitting scheme</p>



<a name="176312899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176312899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176312899">(Sep 22 2019 at 14:33)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="125250">Wesley Wiser</span> is that because we're only allocating 1 GB of output? Seems like we should allocate more to avoid this</p>
</blockquote>
<p>Yeah, that seems likely to me. IIRC, there isn't a huge downside to allocating more space because we shrink the file to the correct size at the end after we've recorded all of the data.</p>



<a name="176312975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176312975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176312975">(Sep 22 2019 at 14:35)</a>:</h4>
<p>Ok, I'm not remembering correctly. For *nix, we <code>mmap()</code> an anonymous file and then create a real file at the end and dump everything to it. So yeah, increasing it is probably not a big deal.</p>



<a name="176313020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176313020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176313020">(Sep 22 2019 at 14:36)</a>:</h4>
<p>Since it's lazily allocated, it shouldn't actually cost us anything unless we end up using all of the space.</p>



<a name="176347599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347599">(Sep 23 2019 at 08:02)</a>:</h4>
<p>Awesome work, <span class="user-mention" data-user-id="116122">@simulacrum</span>!</p>



<a name="176347620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347620">(Sep 23 2019 at 08:02)</a>:</h4>
<p>Wow, more than 1 GB of events <code>:)</code></p>



<a name="176347663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347663">(Sep 23 2019 at 08:03)</a>:</h4>
<p>Increasing that shouldn't be a problem, as <span class="user-mention" data-user-id="125250">@Wesley Wiser</span> stated.</p>



<a name="176347741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347741">(Sep 23 2019 at 08:04)</a>:</h4>
<p>However, we don't want to record all events, since the query cache hits don't contribute anything to the summarized data but increase the overhead by something like 400%.</p>



<a name="176347844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347844">(Sep 23 2019 at 08:06)</a>:</h4>
<p>I think we should change the default event filter instead</p>



<a name="176347884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347884">(Sep 23 2019 at 08:07)</a>:</h4>
<p>this would be part of my event-kind review (which I hope to get to later this week)</p>



<a name="176347986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176347986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176347986">(Sep 23 2019 at 08:08)</a>:</h4>
<p>until then it's fine if the incremental cache hits only shows zeros</p>



<a name="176348110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176348110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176348110">(Sep 23 2019 at 08:10)</a>:</h4>
<blockquote>
<p>Tomorrow's agenda is to try and rework how perf stores and publishes data as right now we've ~20x increased each commit's data with the self-profile info, which is unacceptable</p>
</blockquote>
<p>Can you elaborate on that? What is this additional data?</p>



<a name="176348443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176348443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176348443">(Sep 23 2019 at 08:16)</a>:</h4>
<p>Correction: Query cache hits <em>do</em> contribute to the summarized data. I wonder if it is worth the overhead though.</p>



<a name="176348497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176348497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176348497">(Sep 23 2019 at 08:17)</a>:</h4>
<p>And the possible skew we get from recording them: a query cache hit is a very cheap operation, so the recording overhead will be a much larger percentage of it's actual execution time then for other kinds of events.</p>



<a name="176349846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176349846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176349846">(Sep 23 2019 at 08:41)</a>:</h4>
<p>regarding the details view:</p>
<ul>
<li>awesome <code>:)</code></li>
<li>great that one can sort by column</li>
<li>I think it would be good to have a column for percentage of total compile time</li>
<li>would it make sense to automatically omit columns that are all zeros? Are those columns present in the JSON output?</li>
<li>in the future, once we have it, it would be cool to also show some metadata about the benchmark, like total execution time (need to implement <a href="https://github.com/rust-lang/measureme/issues/15" target="_blank" title="https://github.com/rust-lang/measureme/issues/15">https://github.com/rust-lang/measureme/issues/15</a> for that)</li>
</ul>



<a name="176350318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176350318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176350318">(Sep 23 2019 at 08:48)</a>:</h4>
<p>regarding a comparison view:</p>
<ul>
<li>I think we need it. It might be the most important tool here because it should enable pinpointing regressions pretty quickly.</li>
<li>next to each column there could another (narrow) one, just showing <code>+ x%</code>, color coded like in the regular comparison view</li>
<li>the alt-text for the percentage could be the absolute number from the baseline commit. It might be interesting sometimes but usually knowing just the percentage of change is enough information.</li>
</ul>



<a name="176360451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176360451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176360451">(Sep 23 2019 at 11:41)</a>:</h4>
<blockquote>
<blockquote>
<p>Tomorrow's agenda is to try and rework how perf stores and publishes data as right now we've ~20x increased each commit's data with the self-profile info, which is unacceptable</p>
</blockquote>
<p>Can you elaborate on that? What is this additional data?</p>
</blockquote>
<p>The self profile data itself -- basically all the string "labels" for the fields and such - since we're storing it as JSON</p>



<a name="176360469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176360469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176360469">(Sep 23 2019 at 11:41)</a>:</h4>
<p>I didn't get a chance to investigate too much though (got distracted with other things) -- I don't think it's a problem for the time being though as I said</p>



<a name="176360525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176360525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176360525">(Sep 23 2019 at 11:42)</a>:</h4>
<blockquote>
<p>And the possible skew we get from recording them: a query cache hit is a very cheap operation, so the recording overhead will be a much larger percentage of it's actual execution time then for other kinds of events.</p>
</blockquote>
<p>Sure -- I also think that the current query hits aren't really too useful since there's not much we can do about them (it's also unclear how many are due to "poor incremental" or what)</p>



<a name="176360532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176360532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176360532">(Sep 23 2019 at 11:42)</a>:</h4>
<p>So I'll switch back to the default set of events I guess -- and probably drop the now-always-0 columns from the display</p>



<a name="176360583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176360583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176360583">(Sep 23 2019 at 11:43)</a>:</h4>
<blockquote>
<p>regarding a comparison view:</p>
<ul>
<li>I think we need it. It might be the most important tool here because it should enable pinpointing regressions pretty quickly.</li>
<li>next to each column there could another (narrow) one, just showing <code>+ x%</code>, color coded like in the regular comparison view</li>
<li>the alt-text for the percentage could be the absolute number from the baseline commit. It might be interesting sometimes but usually knowing just the percentage of change is enough information.</li>
</ul>
</blockquote>
<p>Would it be sufficient for now to just always compare with the same "benchmark + run" pair (basically, not support commit A, benchmark B, run C with commit A1, benchmark D, run E)? That should be relatively easy ("just another column")</p>



<a name="176362413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176362413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176362413">(Sep 23 2019 at 12:14)</a>:</h4>
<blockquote>
<p>Correction: Query cache hits <em>do</em> contribute to the summarized data. I wonder if it is worth the overhead though.</p>
</blockquote>
<p>Hm, so actually -- if we're collecting a total invocation count, and cache misses, we get cache hits for free, right?</p>



<a name="176362442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176362442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176362442">(Sep 23 2019 at 12:15)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> In any case, though, displaying them is somewhat pointless -- they're equivalent to total count - misses or so</p>



<a name="176362457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176362457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176362457">(Sep 23 2019 at 12:15)</a>:</h4>
<p>which I _think_ can be reached by sorting? not quite sure</p>



<a name="176362463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176362463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176362463">(Sep 23 2019 at 12:15)</a>:</h4>
<p>I'll remove the hit columns for now though</p>



<a name="176374654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176374654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176374654">(Sep 23 2019 at 14:41)</a>:</h4>
<blockquote>
<p>Would it be sufficient for now to just always compare with the same "benchmark + run" pair (basically, not support commit A, benchmark B, run C with commit A1, benchmark D, run E)? That should be relatively easy ("just another column")</p>
</blockquote>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>, I don't think I understand what you mean here</p>



<a name="176374730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176374730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176374730">(Sep 23 2019 at 14:42)</a>:</h4>
<p>The inputs to the query compare page can just be commit (A, B) + the run identifier (benchmark name, run name)</p>



<a name="176374738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176374738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176374738">(Sep 23 2019 at 14:42)</a>:</h4>
<p>Right?</p>



<a name="176375000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375000">(Sep 23 2019 at 14:45)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> anyway, here's what I have so far: <a href="https://perf.rust-lang.org/detailed-query.html?commit=4ff32c07da9d97e6dc315a4a5c9ffbb797cb27bb&amp;base_commit=ef906d0e3c50ba0833c5a135d705ab4f6bd93aea&amp;benchmark=syn-opt&amp;run_name=clean" target="_blank" title="https://perf.rust-lang.org/detailed-query.html?commit=4ff32c07da9d97e6dc315a4a5c9ffbb797cb27bb&amp;base_commit=ef906d0e3c50ba0833c5a135d705ab4f6bd93aea&amp;benchmark=syn-opt&amp;run_name=clean">https://perf.rust-lang.org/detailed-query.html?commit=4ff32c07da9d97e6dc315a4a5c9ffbb797cb27bb&amp;base_commit=ef906d0e3c50ba0833c5a135d705ab4f6bd93aea&amp;benchmark=syn-opt&amp;run_name=clean</a></p>



<a name="176375179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375179">(Sep 23 2019 at 14:47)</a>:</h4>
<p>which is what you get when clicking the RHS of any compare page, LHS leads to a page that's basically what we had before (i.e., no deltas)</p>



<a name="176375207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375207">(Sep 23 2019 at 14:47)</a>:</h4>
<p>Sorting for the delta columns and color coding isn't implemented since both are based on percentages and percentages are a bit hard</p>



<a name="176375297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375297">(Sep 23 2019 at 14:48)</a>:</h4>
<p>yes, this looks good. I think for now, it's fine that one is not able to compare e.g. <code>clean</code> vs <code>patched incremental</code></p>



<a name="176375350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375350">(Sep 23 2019 at 14:48)</a>:</h4>
<p>yeah, that seemed ... a bit nonsensical to me, anyway -- like, they'd ~always have different queries and such</p>



<a name="176375351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375351">(Sep 23 2019 at 14:48)</a>:</h4>
<p>it might make sense in the future (not sure) but for spotting regressions you'd always want to compare the same kind of run</p>



<a name="176375399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375399">(Sep 23 2019 at 14:49)</a>:</h4>
<p>in theory though you'd not use this to spot the regression, it'd be more so to say "what actually regressed", right?</p>



<a name="176375417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375417">(Sep 23 2019 at 14:49)</a>:</h4>
<p>I think it would be good to show the deltas as percentages</p>



<a name="176375422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375422">(Sep 23 2019 at 14:49)</a>:</h4>
<p>i.e., the regression would be spotted on the compare or the graph page and then you click in for more info</p>



<a name="176375448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375448">(Sep 23 2019 at 14:49)</a>:</h4>
<p>yes, "pinpoint the regression" would be more accurate</p>



<a name="176375452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375452">(Sep 23 2019 at 14:50)</a>:</h4>
<p>One concern with percentages is that I don't quite know how to show the times</p>



<a name="176375530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375530">(Sep 23 2019 at 14:50)</a>:</h4>
<p>right now the "raw data" is seconds + nanoseconds which we're converting to the <a href="http://x.xxx" target="_blank" title="http://x.xxx">x.xxx</a> format; I show the "raw" data in the tooltip</p>



<a name="176375545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375545">(Sep 23 2019 at 14:50)</a>:</h4>
<p>with the percents idea I'm not quite sure how to show the "raw" data then</p>



<a name="176375563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375563">(Sep 23 2019 at 14:50)</a>:</h4>
<p>I guess I could just show both somehow?</p>



<a name="176375607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375607">(Sep 23 2019 at 14:51)</a>:</h4>
<p>I would just show <code>x.xxx</code>, I think</p>



<a name="176375642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375642">(Sep 23 2019 at 14:52)</a>:</h4>
<p>the measurements are not that accurate anyway, I guess?</p>



<a name="176375753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375753">(Sep 23 2019 at 14:53)</a>:</h4>
<p>probably? no idea :) higher variance, at least, I presume</p>



<a name="176375918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375918">(Sep 23 2019 at 14:54)</a>:</h4>
<p>So, I would do any calculations with the raw data, but render things in <code>x.xxx</code> format</p>



<a name="176375998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176375998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176375998">(Sep 23 2019 at 14:55)</a>:</h4>
<p>makes sense -- shouldn't be too hard</p>



<a name="176376014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376014">(Sep 23 2019 at 14:55)</a>:</h4>
<p>I'm excited by how far along this already is, btw <code>:D</code></p>



<a name="176376017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376017">(Sep 23 2019 at 14:56)</a>:</h4>
<p>very nice!</p>



<a name="176376115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376115">(Sep 23 2019 at 14:56)</a>:</h4>
<p>regarding the links that lead to the details view: I think the LHS and the RHS show both lead to a non-comparison page</p>



<a name="176376134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376134">(Sep 23 2019 at 14:57)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> do we care about sorting by delta? currently we calculate them frontend so a bit harder to implement</p>



<a name="176376135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376135">(Sep 23 2019 at 14:57)</a>:</h4>
<p>I would expect the LHS to give the details view of the baseline commit</p>



<a name="176376165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376165">(Sep 23 2019 at 14:57)</a>:</h4>
<p>and the RHS to the details view of the new commit</p>



<a name="176376227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376227">(Sep 23 2019 at 14:58)</a>:</h4>
<p>It's "hard" to recover the baseline commit then -- right now the RHS will have a link to the details view for just the RHS (and just the LHS)</p>



<a name="176376265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376265">(Sep 23 2019 at 14:58)</a>:</h4>
<p>and then there could be a <code>compare details</code> button to the right, or the change percentage could be the link</p>



<a name="176376555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376555">(Sep 23 2019 at 15:01)</a>:</h4>
<p>Yeah, we could make the subtraction the link to the diff, I like that</p>



<a name="176376818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376818">(Sep 23 2019 at 15:03)</a>:</h4>
<p>regarding sorting by delta: It might be useful. but if it's significantly harder to have that then we don't need it initially</p>



<a name="176376891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176376891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176376891">(Sep 23 2019 at 15:04)</a>:</h4>
<p>color coding (or otherwise highlighting) the bigger changes becomes more important then</p>



<a name="176377353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377353">(Sep 23 2019 at 15:09)</a>:</h4>
<p>I think it would also help readability a bit if the was styled a little more.</p>



<a name="176377358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377358">(Sep 23 2019 at 15:09)</a>:</h4>
<p>For example</p>



<a name="176377363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377363">(Sep 23 2019 at 15:09)</a>:</h4>
<p><a href="/user_uploads/4715/TmQ9rWOBVItv6mUqMhY0WqA2/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/TmQ9rWOBVItv6mUqMhY0WqA2/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/TmQ9rWOBVItv6mUqMhY0WqA2/pasted_image.png"></a></div>



<a name="176377365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377365">(Sep 23 2019 at 15:09)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> okay, deltas are now percents and I made the 3 compare columns be links to 'just left' 'just right' and 'diff'</p>



<a name="176377414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377414">(Sep 23 2019 at 15:10)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> I'm no great shakes at design -- presuming you did that by editing CSS though I'm happy to take a PR</p>



<a name="176377462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377462">(Sep 23 2019 at 15:10)</a>:</h4>
<p>(or a pasted diff :)</p>



<a name="176377476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377476">(Sep 23 2019 at 15:10)</a>:</h4>
<p>I've still got it open in the Inspector... one sec</p>



<a name="176377600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377600">(Sep 23 2019 at 15:12)</a>:</h4>
<div class="codehilite"><pre><span></span>perf.css
table {
<span class="gi">+     border-collapse: collapse;</span>
}
<span class="gi">+ #primary-table td {</span>
<span class="gi">+     border: 1px lightgrey solid;</span>
<span class="gi">+ }</span>
<span class="gi">+ #primary-table tr:nth-child(2n+1) {</span>
<span class="gi">+     background-color: #FBFBFB;</span>
}
</pre></div>



<a name="176377759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377759">(Sep 23 2019 at 15:13)</a>:</h4>
<p>I'll open a PR.</p>



<a name="176377770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377770">(Sep 23 2019 at 15:13)</a>:</h4>
<p>ah, let's actually add it inline in the detailed-query.html</p>



<a name="176377773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176377773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176377773">(Sep 23 2019 at 15:13)</a>:</h4>
<p>but looks good</p>



<a name="176378316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378316">(Sep 23 2019 at 15:19)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> merged and deployed :)</p>



<a name="176378329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378329">(Sep 23 2019 at 15:19)</a>:</h4>
<p>Thanks :)</p>



<a name="176378454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378454">(Sep 23 2019 at 15:20)</a>:</h4>
<p>This is <span aria-label="fire" class="emoji emoji-1f525" role="img" title="fire">:fire:</span> Really nice work <span class="user-mention" data-user-id="116122">@simulacrum</span>!!</p>



<a name="176378552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378552">(Sep 23 2019 at 15:21)</a>:</h4>
<p>it'd be great to somewhat fast track the mmap size fix so that we stop breaking some of the benchmarks on perf, btw (or let me know that it's hard and I can disable self-profile on them, that's just painful work since it's going to get deleted in a bit)</p>



<a name="176378593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378593">(Sep 23 2019 at 15:21)</a>:</h4>
<p>Do you think 4gb would be sufficient? If you have any kind of gut level feeling</p>



<a name="176378847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378847">(Sep 23 2019 at 15:24)</a>:</h4>
<p>heh, unfortunately, no</p>



<a name="176378878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378878">(Sep 23 2019 at 15:24)</a>:</h4>
<p>I think a stop the world pause as we push out events when we hit the GB marker would work though</p>



<a name="176378890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378890">(Sep 23 2019 at 15:24)</a>:</h4>
<p>Based on past efforts designing something like that is a bit non-trivial though</p>



<a name="176378923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378923">(Sep 23 2019 at 15:25)</a>:</h4>
<p>I would be cautious about allocating the 4gb in one big mmap, too, that seems likely to not work / be bad</p>



<a name="176378937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378937">(Sep 23 2019 at 15:25)</a>:</h4>
<p>Gotcha</p>



<a name="176378958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176378958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176378958">(Sep 23 2019 at 15:25)</a>:</h4>
<p>(although I guess mmap doesn't guarantee the _pages_ underlying your virtual memory are consecutive, so it's probably fine?)</p>



<a name="176379053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176379053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176379053">(Sep 23 2019 at 15:26)</a>:</h4>
<p>Maybe we can have a "standby" mmap and when we fill up, then we'll switch to that one. When we do the switch, we'll also allocate another mmap for standby.</p>



<a name="176379165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176379165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176379165">(Sep 23 2019 at 15:27)</a>:</h4>
<p>sure, that'd work fine I think -- not sure if that's all that much easier to implement -- we want to avoid locks around the mmaps in the happy path</p>



<a name="176380138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176380138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176380138">(Sep 23 2019 at 15:37)</a>:</h4>
<p>so, massively overallocating shouldn't be a problem. that's what the MMU is for.</p>



<a name="176380161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176380161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176380161">(Sep 23 2019 at 15:37)</a>:</h4>
<p>but I also suspect that we'll stay under 1gb once we don't record cache hits anymore</p>



<a name="176380371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176380371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176380371">(Sep 23 2019 at 15:39)</a>:</h4>
<p>I don't want to do some kind of ring buffer because it requires locking</p>



<a name="176380479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176380479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176380479">(Sep 23 2019 at 15:40)</a>:</h4>
<p>if we decided to switch to something like a ring buffer though, then I wouldn't want to use mmaps anymore because there's no need for that then</p>



<a name="176381348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381348">(Sep 23 2019 at 15:50)</a>:</h4>
<p>Makes sense. I've reverted to just the default collection list for now, we'll see soon if that fixes the failures</p>



<a name="176381491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381491">(Sep 23 2019 at 15:52)</a>:</h4>
<p>some observations: </p>
<ul>
<li>the color don't seem to be quite right yet.</li>
<li>some queries with very small absolute times often seem to have very big changes in percent, because the noise dominates for them. I don't know what to do about that.</li>
</ul>



<a name="176381672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381672">(Sep 23 2019 at 15:54)</a>:</h4>
<p>maybe everything below a certain threshold should just be grayed  out anyway</p>



<a name="176381718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381718">(Sep 23 2019 at 15:55)</a>:</h4>
<p>if it takes under 1 microsecond, I don't care :)</p>



<a name="176381789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381789">(Sep 23 2019 at 15:55)</a>:</h4>
<p>Another note:</p>
<ul>
<li>it would help readability if there was more horizontal space between the columns</li>
</ul>



<a name="176381846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176381846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176381846">(Sep 23 2019 at 15:56)</a>:</h4>
<p>/me needs to run <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="176413777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176413777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176413777">(Sep 23 2019 at 22:03)</a>:</h4>
<blockquote>
<ul>
<li>some queries with very small absolute times often seem to have very big changes in percent, because the noise dominates for them. I don't know what to do about that.</li>
</ul>
</blockquote>
<p>I arbitrarily chose 0.05 as minimum realistic absolute delta (i.e., anything less is noise) and we don't color any percents that are representing anything less than this delta. This isn't right for anything but time, but seems fine -- other measurements are counts, which are always going to be non-noisy since we should be deterministic, though possibly modulo parallelism, not sure</p>



<a name="176441698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176441698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176441698">(Sep 24 2019 at 08:15)</a>:</h4>
<p>sounds good! query invocations should be deterministic even with parallelism enable, yes</p>



<a name="176452896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176452896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176452896">(Sep 24 2019 at 11:05)</a>:</h4>
<p>I was thinking we might have a mode of "race to completion" between two threads if both need results and they're not available but I guess there's probably not much point as we're waiting for the sameish amount of time anyway</p>



<a name="176506526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506526">(Sep 24 2019 at 21:09)</a>:</h4>
<p>Are the diffs right? They kind of look backwards to me.</p>
<p><a href="https://perf.rust-lang.org/detailed-query.html?commit=8be3622ad74755484fd9b9e401d0ee96837be244&amp;base_commit=b4ba2a3953ea9ec28f01c314be315d46673bd782&amp;benchmark=clap-rs-debug&amp;run_name=clean" target="_blank" title="https://perf.rust-lang.org/detailed-query.html?commit=8be3622ad74755484fd9b9e401d0ee96837be244&amp;base_commit=b4ba2a3953ea9ec28f01c314be315d46673bd782&amp;benchmark=clap-rs-debug&amp;run_name=clean">https://perf.rust-lang.org/detailed-query.html?commit=8be3622ad74755484fd9b9e401d0ee96837be244&amp;base_commit=b4ba2a3953ea9ec28f01c314be315d46673bd782&amp;benchmark=clap-rs-debug&amp;run_name=clean</a></p>
<p>Reads like an increase of 46.9% but if you check, it's actually a decrease.</p>



<a name="176506576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506576">(Sep 24 2019 at 21:09)</a>:</h4>
<p>Base time:</p>
<p>LLVM_emit_obj   7.779   4   4   0.000</p>
<p>New time:</p>
<p>LLVM_emit_obj   5.296   4   4   0.000</p>



<a name="176506762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506762">(Sep 24 2019 at 21:11)</a>:</h4>
<p>Uh, yes, that was a bug -- should be fixed now.</p>



<a name="176506764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506764">(Sep 24 2019 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="125250">@Wesley Wiser</span> ^</p>



<a name="176506856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506856">(Sep 24 2019 at 21:12)</a>:</h4>
<p>Just as I was starting to look at the code... it's already fixed. Fast as always <span class="user-mention" data-user-id="116122">@simulacrum</span> :)</p>



<a name="176506899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506899">(Sep 24 2019 at 21:13)</a>:</h4>
<p>I have no real idea if the percentages are "good" though -- I'm never sure what my denominator should be</p>



<a name="176506914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506914">(Sep 24 2019 at 21:13)</a>:</h4>
<p>I guess in part because it depends on what you want a percent _of_</p>



<a name="176506986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176506986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176506986">(Sep 24 2019 at 21:14)</a>:</h4>
<p>Yeah, I had the same question when I added the diff subcommand to <code>summarize</code></p>



<a name="176507027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176507027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176507027">(Sep 24 2019 at 21:14)</a>:</h4>
<p>It just outputs the differences and orders results by the absolute values</p>



<a name="176507031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176507031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176507031">(Sep 24 2019 at 21:14)</a>:</h4>
<p><a href="https://github.com/rust-lang/measureme/tree/master/summarize#the-diff-sub-command" target="_blank" title="https://github.com/rust-lang/measureme/tree/master/summarize#the-diff-sub-command">https://github.com/rust-lang/measureme/tree/master/summarize#the-diff-sub-command</a></p>



<a name="176507175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176507175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176507175">(Sep 24 2019 at 21:16)</a>:</h4>
<p>The easy way out :)</p>



<a name="176638512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176638512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176638512">(Sep 26 2019 at 08:36)</a>:</h4>
<p>if you ask me, the problem is using percent difference rather than just presenting the ratio</p>



<a name="176638646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176638646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176638646">(Sep 26 2019 at 08:39)</a>:</h4>
<p>i.e., I personally would rather see <code>0.60</code> than <code>-66.66%</code> or <code>-40%</code></p>



<a name="176638793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176638793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176638793">(Sep 26 2019 at 08:42)</a>:</h4>
<p>(this is me starting from a hypothetical change from 100.0 to 60.0)</p>



<a name="176638817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176638817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176638817">(Sep 26 2019 at 08:43)</a>:</h4>
<p>see also <a href="http://mathcentral.uregina.ca/QQ/database/QQ.09.06/s/carolyn1.html" target="_blank" title="http://mathcentral.uregina.ca/QQ/database/QQ.09.06/s/carolyn1.html">http://mathcentral.uregina.ca/QQ/database/QQ.09.06/s/carolyn1.html</a></p>



<a name="176638831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176638831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176638831">(Sep 26 2019 at 08:43)</a>:</h4>
<p>In particular "percentage change. This is the change from an early value to a later value, and by convention, it is done with respect to the earlier value."</p>



<a name="176650048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176650048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176650048">(Sep 26 2019 at 11:40)</a>:</h4>
<p>Seems reasonable, and link is super handy -- I'll look into that and try and migrate perf over entirely</p>



<a name="176658781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176658781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176658781">(Sep 26 2019 at 13:42)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> Is perf.rlo doing self-profiling with the default event filter at the moment?</p>



<a name="176658791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176658791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176658791">(Sep 26 2019 at 13:43)</a>:</h4>
<p>I believe so yes</p>



<a name="176658803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176658803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176658803">(Sep 26 2019 at 13:43)</a>:</h4>
<p>I can switch that to a non-default though (maybe we want a dedicated one for perf?)</p>



<a name="176660288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187831-t-compiler/wg-self-profile/topic/perf%20integration/near/176660288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/187831-t-compiler/wg-self-profile/topic/perf.20integration.html#176660288">(Sep 26 2019 at 14:02)</a>:</h4>
<p>Thanks for the info. The default is fine for now.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>